home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
PsL Monthly 1993 December
/
PSL Monthly Shareware CD-ROM (December 1993).iso
/
prgmming
/
dos
/
pascal
/
bignum.exe
/
ODDS.PAS
< prev
Wrap
Pascal/Delphi Source File
|
1988-12-30
|
2KB
|
84 lines
uses bignum,crt;
var
n,r,code: integer;
c,f1,f2,f3,tot,per: string;
fn,fr: string;
begin
c :='';
clrscr;
textCOLOR (7);gotoxy(32,1);write('ODDS CALCULATOR');textCOLOR (7);
gotoxy(1,2);write('THIS PROGRAM CAN HELP YOU CALCULATE THE ODDS OF LOTTERIES OR OTHER EVENTS. SAY ');
gotoxy(1,3);write('THERE IS A LOTTERY WITH #''s RANGING FROM 1 TO 36. YOU ENTER 36 FOR # OF OB- ');
gotoxy(1,4);write('JECTS. IF YOU MUST PICK 6 #''s OUT OF THE 36, YOU ENTER 6 WHEN THE COMPUTER ASKS');
gotoxy(1,5);write('FOR # OF ITEMS PICKING FROM OBJECTS. THE COMPUTER WILL TELL YOU HOW MANY TOTAL ');
gotoxy(1,6);write('POSSIBLE CHOICES YOU HAVE AND THE ODDS AT GETTING THE RIGHT COMBINATION.');
window(1,7,80,25);
while (c <>'N') and (c <>'n') do
begin
writeln('');
n :=1;
code := 1;
{$I-}
while (n<=1) or (code<>0) do
begin
write('# OF OBJECTS YOU MUST PICK FROM ?');
readln(n);
if (n>145) or (n<=1) then
begin
writeln('Must be from 2 to 145!');
sound(40);
delay(100);
nosound;
n := -1;
end;
code := ioresult;
end;
r := 0;
code :=1;
while ((r >n) or (r<=0)) or (code<>0) do
begin
write('# OF ITEMS PICKING FROM OBJECTS ?');
readln(r);
if (r>n) or (r<=0) then
begin
writeln('Must be from 1 to ',n,'!');
sound(40);
delay(100);
nosound;
r := -1;
end;
code := ioresult;
end;
str(n,fn);
str(r,fr);
textcolor(21);
writeln('Please wait---Calculating odds!');textcolor(7);
if fn <> fr then
begin
f1 := fac(fn);
f2 := fac(fr);
end
else
begin
f1 := fn;
f2 := fn;{equal, no factorial needed}
end;
f3 := fac(minus(fn,fr,true));
tot := divide(f1,times(f2,f3,false),false,true);
per := divide('1',tot,false,false);
if length(per) >=253 then
per := copy (per,1,252);
clrscr;
writeln('');
writeln('');
write('TOTAL POSSIBLE COMBINATIONS WITH ',N,' OBJECTS PICKING ',R);
writeln(' ITEMS=',TOT);
writeln('ODDS AT PICKING THE CORRECT ITEMS FROM OBJECTS IN ONE GUESS=',times(per,'100',false),'%');
write('CALCULATE MORE ODDS (Y/N)?');
readln(c);
end;
end.